package com.ziyun.pop.modules.goods.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;






/**
 * 商品表
 *
 * @authorxueqz
 * @email
 * @date 2018-08-21 08:46:29
 */
@TableName("goods")
public class GoodsEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     *阶梯价系数
     */
    private String stepPrice;
    /**
     *
     */
    private String popStepPrice;
    /**
     * pop平台报价商品默认选项价
     */
    private BigDecimal popPrice;
    /**
     * 报价商品默认选项价格
     */
    private BigDecimal price;
    /**
     * 审核状态
     */
    private Integer examineStatus;
    /**
     *是否奖励金
     */
    @TableField(exist = false)
    private Boolean reward;
    /**
     *发布人归属
     */
    private Boolean opMark;
    /**
     *屏蔽商品是否在前端展示
     */
    private Boolean hideFlag;
    /**
     * 商品ID
     */
    @TableId(type=IdType.AUTO)
    private Long goodsId;
    /**
     *pop平台利润系数
     */
    private BigDecimal popPriceCoefficient;
    /**
     * 紫云利润系数
     */
    private BigDecimal ziyunPriceCoefficient;

    /**
     * 商品编号
     */
    private String goodsNo;
    /**
     * 商品名称
     */
    private String name;
    /**
     * 分类
     */
    private Integer categoryId;
    /**
     * 图文宝图片
     */
    @TableField(exist = false)
    private String twbImageUrl;
    /**
     * 品牌ID
     */
    private Integer brandId;
    /**
     * 无库存销售(1:true 0:false)
     */
    private Boolean noStore;
    /**
     * 上架 (1.上架，2.下架,3.删除)
     */
    private String marketable;
    /**
     * 排序
     */
    private Integer goodsOrder;
    /**
     * 单位
     */
    private String unit;
    /**
     * 商品简介
     */
    private String brief;
    /**
     * 视频url
     */
    private String videoUrl;
    /**
     * 默认图片urls
     */
    private String imageUrls;
    /**
     * 详细介绍图片urls
     */
    private String infoUrls;
    /**
     * 需要删除的图片集合
     */
    @TableField(exist = false)
    private List<String> delImageIds;
    /**
     * 配送及售后
     */
    private String afterSale;
    /**
     * 起订量
     */
    private BigDecimal minBuyNum;
    /**
     * 购买类型(standard：普通商品),(print：报价-印刷商品),(paper：大纸商品),(fast：报价-快印商品),(material：报价-广告物料)''',
     */
    private String goodsType;
    /**
     * 关联设计id
     */
    private String relateDesignIds;
    /**
     * 关键字
     */
    private String keywords;
    /**
     * 运费模板id
     */
    private Integer freightId;
    /**
     * 是否供应商  1：自营，0：供应商
     */
    private Boolean self;
    /**
     * 卖家ID
     */
    private Integer sellerId;
    /**
     * 模板图片id集合
     */
    private String goodsTemplateIds;
    /**
     * 是否屏蔽（true：是；false：否）
     */
    private Boolean disabled;
    /**
     * 创建人
     */
    private String createName;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 是否平板
     */
    private Integer isUnit;
    /**
     *旧商品类型
     */
    private String oldGoodsType;
    /**
     *商品编辑添加规格选择数据集
     */
    @TableField(exist = false)
    private List addAttributeData;
    /**
     *参与sku生成的optionId集合
     */
    @TableField(exist = false)
    private List<Map<String,Object>> joinSkuOptionIds;
    /**
     * 规格属性
     */
    @TableField(exist = false)
    private String attributeNames;
    /**
     * 工艺属性
     */
    @TableField(exist = false)
    private String craftNames;
    /**
     * 商品分类名
     */
    @TableField(exist = false)
    private String categoryName;
    /**
     * 模板名
     */
    @TableField(exist = false)
    private String templateName;
    /**
     *规格集合
     */
    @TableField(exist = false)
    private List specificationItems;
    /**
     *工艺集合
     */
    @TableField(exist = false)
    private List craftAttributes;
    /**
     * sku矩阵列
     */
    @TableField(exist = false)
    private List itemList;
    /**
     * sku列表
     */
    @TableField(exist = false)
    private List<GoodsProductEntity> goodsProductList;
    /**
     * 发布平台
     */
    private Integer stageType;
    /**
     * 工艺值
     */
    @TableField(exist = false)
    private List<String> craftValues;
    /**
     *旧系统数据表示
     */
    private Boolean dateFlag;

    /**
     * 关联紫云spu
     */
    @JsonSerialize(using=ToStringSerializer.class)
    private Long ziyunGoodsId;

    /**
     * 是否是同步商户商品:1.是,0.否
     */
    private Integer defaultGoods;

    private Boolean twbPushFlag;
    /**
     * 图文宝商品分类
     */
    @JsonSerialize(using=ToStringSerializer.class)
    private Long twbCategory;

    public Boolean getDateFlag() {
        return dateFlag;
    }

    public void setDateFlag(Boolean dateFlag) {
        this.dateFlag = dateFlag;
    }

    /**
     * 设置：商品ID
     */
    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }
    /**
     * 获取：商品ID
     */
    public Long getGoodsId() {
        return goodsId;
    }
    /**
     * 设置：商品编号
     */
    public void setGoodsNo(String goodsNo) {
        this.goodsNo = goodsNo;
    }
    /**
     * 获取：商品编号
     */
    public String getGoodsNo() {
        return goodsNo;
    }
    /**
     * 设置：商品名称
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 获取：商品名称
     */
    public String getName() {
        return name;
    }
    /**
     * 设置：分类
     */
    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }
    /**
     * 获取：分类
     */
    public Integer getCategoryId() {
        return categoryId;
    }
    /**
     * 设置：品牌ID
     */
    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }
    /**
     * 获取：品牌ID
     */
    public Integer getBrandId() {
        return brandId;
    }
    /**
     * 设置：无库存销售(1:true 0:false)
     */
    public void setNoStore(Boolean noStore) {
        this.noStore = noStore;
    }
    /**
     * 获取：无库存销售(1:true 0:false)
     */
    public Boolean getNoStore() {
        return noStore;
    }
    /**
     * 设置：上架 (1.上架，2.下架,3.删除)
     */
    public void setMarketable(String marketable) {
        this.marketable = marketable;
    }
    /**
     * 获取：上架 (1.上架，2.下架,3.删除)
     */
    public String getMarketable() {
        return marketable;
    }
    /**
     * 设置：排序
     */
    public void setGoodsOrder(Integer goodsOrder) {
        this.goodsOrder = goodsOrder;
    }
    /**
     * 获取：排序
     */
    public Integer getGoodsOrder() {
        return goodsOrder;
    }
    /**
     * 设置：单位
     */
    public void setUnit(String unit) {
        this.unit = unit;
    }
    /**
     * 获取：单位
     */
    public String getUnit() {
        return unit;
    }
    /**
     * 设置：商品简介
     */
    public void setBrief(String brief) {
        this.brief = brief;
    }
    /**
     * 获取：商品简介
     */
    public String getBrief() {
        return brief;
    }
    /**
     * 设置：视频url
     */
    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }
    /**
     * 获取：视频url
     */
    public String getVideoUrl() {
        return videoUrl;
    }
    /**
     * 设置：默认图片urls
     */
    public void setImageUrls(String imageUrls) {
        this.imageUrls = imageUrls;
    }
    /**
     * 获取：默认图片urls
     */
    public String getImageUrls() {
        return imageUrls;
    }
    /**
     * 设置：详细介绍图片urls
     */
    public void setInfoUrls(String infoUrls) {
        this.infoUrls = infoUrls;
    }
    /**
     * 获取：详细介绍图片urls
     */
    public String getInfoUrls() {
        return infoUrls;
    }
    /**
     * 设置：配送及售后
     */
    public void setAfterSale(String afterSale) {
        this.afterSale = afterSale;
    }
    /**
     * 获取：配送及售后
     */
    public String getAfterSale() {
        return afterSale;
    }
    /**
     * 设置：起订量
     */
    public void setMinBuyNum(BigDecimal minBuyNum) {
        this.minBuyNum = minBuyNum;
    }
    /**
     * 获取：起订量
     */
    public BigDecimal getMinBuyNum() {
        return minBuyNum;
    }
    /**
     * 设置：购买类型(normal：普通商品),(print：印刷商品),(design_service：设计商品),(quote：报价商品),(paper：大纸商品),(fold：折页),(template：索样商品)
     */
    public void setGoodsType(String goodsType) {
        this.goodsType = goodsType;
    }
    /**
     * 获取：购买类型(normal：普通商品),(print：印刷商品),(design_service：设计商品),(quote：报价商品),(paper：大纸商品),(fold：折页),(template：索样商品)
     */
    public String getGoodsType() {
        return goodsType;
    }
    /**
     * 设置：关联设计id
     */
    public void setRelateDesignIds(String relateDesignIds) {
        this.relateDesignIds = relateDesignIds;
    }
    /**
     * 获取：关联设计id
     */
    public String getRelateDesignIds() {
        return relateDesignIds;
    }
    /**
     * 设置：关键字
     */
    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }
    /**
     * 获取：关键字
     */
    public String getKeywords() {
        return keywords;
    }
    /**
     * 设置：运费模板id
     */
    public void setFreightId(Integer freightId) {
        this.freightId = freightId;
    }
    /**
     * 获取：运费模板id
     */
    public Integer getFreightId() {
        return freightId;
    }
    /**
     * 设置：是否供应商  1：自营，0：供应商
     */
    public void setSelf(Boolean self) {
        this.self = self;
    }
    /**
     * 获取：是否供应商  1：自营，0：供应商
     */
    public Boolean getSelf() {
        return self;
    }
    /**
     * 设置：卖家ID
     */
    public void setSellerId(Integer sellerId) {
        this.sellerId = sellerId;
    }
    /**
     * 获取：卖家ID
     */
    public Integer getSellerId() {
        return sellerId;
    }
    /**
     * 设置：模板图片id集合
     */
    public void setGoodsTemplateIds(String goodsTemplateIds) {
        this.goodsTemplateIds = goodsTemplateIds;
    }
    /**
     * 获取：模板图片id集合
     */
    public String getGoodsTemplateIds() {
        return goodsTemplateIds;
    }
    /**
     * 设置：是否屏蔽（true：是；false：否）
     */
    public void setDisabled(Boolean disabled) {
        this.disabled = disabled;
    }
    /**
     * 获取：是否屏蔽（true：是；false：否）
     */
    public Boolean getDisabled() {
        return disabled;
    }
    /**
     * 设置：创建人
     */
    public void setCreateName(String createName) {
        this.createName = createName;
    }
    /**
     * 获取：创建人
     */
    public String getCreateName() {
        return createName;
    }
    /**
     * 设置：创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    /**
     * 获取：创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    public String getAttributeNames() {
        return attributeNames;
    }

    public void setAttributeNames(String attributeNames) {
        this.attributeNames = attributeNames;
    }

    public String getCraftNames() {
        return craftNames;
    }

    public void setCraftNames(String craftNames) {
        this.craftNames = craftNames;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getTemplateName() {
        return templateName;
    }

    public void setTemplateName(String templateName) {
        this.templateName = templateName;
    }

    public List getSpecificationItems() {
        return specificationItems;
    }

    public void setSpecificationItems(List specificationItems) {
        this.specificationItems = specificationItems;
    }

    public List getCraftAttributes() {
        return craftAttributes;
    }

    public void setCraftAttributes(List craftAttributes) {
        this.craftAttributes = craftAttributes;
    }

    public List getItemList() {
        return itemList;
    }

    public void setItemList(List itemList) {
        this.itemList = itemList;
    }

    public List<GoodsProductEntity> getGoodsProductList() {
        return goodsProductList;
    }

    public void setGoodsProductList(List<GoodsProductEntity> goodsProductList) {
        this.goodsProductList = goodsProductList;
    }

    public Integer getStageType() {
        return stageType;
    }

    public void setStageType(Integer stageType) {
        this.stageType = stageType;
    }

    public List<String> getCraftValues() {
        return craftValues;
    }

    public void setCraftValues(List<String> craftValues) {
        this.craftValues = craftValues;
    }

    public  List<String> getDelImageIds() {
        return delImageIds;
    }

    public void setDelImageIds( List<String> delImageIds) {
        this.delImageIds = delImageIds;
    }

    public Integer getIsUnit() {
        return isUnit;
    }

    public void setIsUnit(Integer isUnit) {
        this.isUnit = isUnit;
    }

    public List<Map<String, Object>> getJoinSkuOptionIds() {
        return joinSkuOptionIds;
    }

    public void setJoinSkuOptionIds(List<Map<String, Object>> joinSkuOptionIds) {
        this.joinSkuOptionIds = joinSkuOptionIds;
    }

    public List getAddAttributeData() {
        return addAttributeData;
    }

    public void setAddAttributeData(List addAttributeData) {
        this.addAttributeData = addAttributeData;
    }

    public String getOldGoodsType() {
        return oldGoodsType;
    }

    public void setOldGoodsType(String oldGoodsType) {
        this.oldGoodsType = oldGoodsType;
    }

    public BigDecimal getPopPriceCoefficient() {
        return popPriceCoefficient;
    }

    public void setPopPriceCoefficient(BigDecimal popPriceCoefficient) {
        this.popPriceCoefficient = popPriceCoefficient;
    }

    public BigDecimal getZiyunPriceCoefficient() {
        return ziyunPriceCoefficient;
    }

    public void setZiyunPriceCoefficient(BigDecimal ziyunPriceCoefficient) {
        this.ziyunPriceCoefficient = ziyunPriceCoefficient;
    }

    public Boolean getHideFlag() {
        return hideFlag;
    }

    public void setHideFlag(Boolean hideFlag) {
        this.hideFlag = hideFlag;
    }

    public Boolean getReward() {
        return reward;
    }

    public void setReward(Boolean reward) {
        this.reward = reward;
    }

    public Boolean getOpMark() {
        return opMark;
    }

    public void setOpMark(Boolean opMark) {
        this.opMark = opMark;
    }

    public Integer getExamineStatus() {
        return examineStatus;
    }

    public void setExamineStatus(Integer examineStatus) {
        this.examineStatus = examineStatus;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPopPrice() {
        return popPrice;
    }

    public void setPopPrice(BigDecimal popPrice) {
        this.popPrice = popPrice;
    }

    public Long getZiyunGoodsId() {
        return ziyunGoodsId;
    }

    public void setZiyunGoodsId(Long ziyunGoodsId) {
        this.ziyunGoodsId = ziyunGoodsId;
    }

    public Integer getDefaultGoods() {
        return defaultGoods;
    }

    public void setDefaultGoods(Integer defaultGoods) {
        this.defaultGoods = defaultGoods;
    }

    public Long getTwbCategory() {
        return twbCategory;
    }

    public void setTwbCategory(Long twbCategory) {
        this.twbCategory = twbCategory;
    }

    public Boolean getTwbPushFlag() {
        return twbPushFlag;
    }

    public void setTwbPushFlag(Boolean twbPushFlag) {
        this.twbPushFlag = twbPushFlag;
    }

    public String getTwbImageUrl() {
        return twbImageUrl;
    }

    public void setTwbImageUrl(String twbImageUrl) {
        this.twbImageUrl = twbImageUrl;
    }

    public String getStepPrice() {
        return stepPrice;
    }

    public void setStepPrice(String stepPrice) {
        this.stepPrice = stepPrice;
    }

    public String getPopStepPrice() {
        return popStepPrice;
    }

    public void setPopStepPrice(String popStepPrice) {
        this.popStepPrice = popStepPrice;
    }
}
